1. Field of the Invention
The invention relates to the field of artificial intelligence, and more particularly to the field of natural language interaction-based applications, such as virtual assistants.
2. Discussion of the State of the Art
Virtual assistants are an example of a class of software applications, referred to herein as natural language interaction applications that use natural language to interact with a human user. With respect to virtual assistants in particular, these applications perform functions similar to those provided by human assistants, in that they can engage in conversations with their users in order to for example provide information, carry out routine tasks, or perform other operations as required. Many virtual assistants have been used in association with web sites, with these virtual assistants often featuring the use of graphical images or avatars to simulate the experience of interacting with a human being.
While some natural language interaction applications known in the art may possess rudimentary natural language understanding capabilities, in reality most such applications, and particularly most virtual assistants known in the art, are tightly scripted applications that carry out a limited range of activities. While scripted agents have proven useful in many online scenarios, their acceptance has generally been limited because, when users are restricted in their ways of expressing themselves in natural language, the communication language is not natural. Any notion of the virtual assistant's behaving like a real assistant disappears because too much effort is demanded of the user when the user is expected to know precisely what to say or what to do in order to achieve her goals. Thus there is a distinct need in the art for interpreting fluid and freely expressed natural language in various applications, for example by virtual assistants. This challenge is exacerbated by the fact that, even when equipped with rudimentary natural language interpretation, natural language interaction applications such as virtual assistants that seem to only “know” a small number of facts and who only “talk about” a very limited range of subjects (such as appointment management) do not seem very realistic to humans, who are used to being able to say things in a fluid way, shifting subjects easily and intermixing casual banter with task-oriented speech.
The use of natural language interaction applications generally, and virtual assistants more particularly, has also been hampered by the high degree of complexity and cost associated with developing and deploying virtual assistants, particularly those that have any significant degree of natural language interpretation and interaction capability. Because applications capable of even basic natural language interpretation and interaction tend to require teams of linguistic experts with technical skills to develop, the rate of adoption has been limited and the range of entities that have used virtual assistants tends to be limited to large companies that can afford the high time and cash investments needed to implement even marginal natural language interaction applications. Moreover, testing of natural language interaction applications tends to be manual, difficult for humans to oversee, and extremely time-consuming, as developers must either test the behavior of such applications manually or carry out tests with users.
Accordingly, what are needed in the art are a system and various methods that enable organizations of all sizes to efficiently develop, test, deploy, and maintain useful natural language interaction applications such as virtual assistants that are able to interpret and react properly to a wide range of natural language inputs from users, including casual off-topic conversational elements as well as task-oriented language.
What are further needed in the art, in order to decrease the development time, are a system and various methods for automatically generating and tuning code for natural language interaction applications.